home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / asmutil / hdsource.zip / HDEQU.ASM < prev    next >
Assembly Source File  |  1980-01-01  |  7KB  |  158 lines

  1. ; **********************************************************************
  2. ; *           SEGMENT TO MAP INTERRUPT VECTORS               *
  3. ; **********************************************************************
  4. INT_AREA SEGMENT AT 0
  5.      ORG     4*13H               ;HARD DISK VECTORS
  6. INT_13     LABEL     WORD
  7.      ORG     4*41H               ;PARM VECTORS FOR DRIVE 0
  8. INT_41     LABEL     DWORD
  9.      ORG     4*46H               ;PARM VECTORS FOR DRIVE 1
  10. INT_46     LABEL     DWORD
  11. INT_AREA ENDS
  12. ; **********************************************************************
  13. ; *           SEGMENT TO MAP HARD DISK DATA AREAS               *
  14. ; **********************************************************************
  15. HD_DATA  SEGMENT AT 40H
  16.      ORG     74H
  17. HD_STATUS DB     ?               ;HARD DISK STATUS BYTE
  18. HD_NUM     DB     ?               ;NUMBER OF HARD DISK DRIVES
  19. HD_DRIVE DB     ?               ;HARD DISK DRIVE NUMBER
  20. HD_COMP  DB     ?               ;COMPATABILITY FLAG
  21. ;
  22. ;     BITS 7-4 FOR DRIVE0 AND BITS 3-0 FOR DRIVE 1
  23. ;
  24. HD_AT     EQU     00H               ;NATIVE AT MODE
  25. HD_PC     EQU     0FH               ;PC MODE
  26.      ORG     08CH
  27. HD_STAT  DB     ?               ;STATUS REGISTER
  28. HD_ERR     DB     ?               ;ERROR REGISTER
  29. HD_INT_FLAG DB     ?               ;HARD DISK INTERRUPT FLAG
  30. ;
  31. HD_DATA  ENDS
  32. ; **********************************************************************
  33. ; *               CONTROLLER PORT EQUATES                   *
  34. ; **********************************************************************
  35. HD_P0     EQU     01F0H               ;DATA/DATA
  36. HD_P1     EQU     01F1H               ;ERROR/WRITE PRE-COMP
  37. HD_P2     EQU     01F2H               ;SEC CNT/SEC CNT
  38. HD_P3     EQU     01F3H               ;SEC NUM/SEC NUM
  39. HD_P4     EQU     01F4H               ;CYL LO/CYL LO
  40. HD_P5     EQU     01F5H               ;CYL HI/CYL HI
  41. HD_P6     EQU     01F6H               ;DRIVE,HEAD/DRIVE,HEAD
  42. HD_P7     EQU     01F7H               ;STATUS/COMMAND
  43. ; **********************************************************************
  44. ; *             ERROR    EQUATES                    *
  45. ; **********************************************************************
  46. CMD_ER     EQU     01H               ;BAD COMMAND
  47. ADMRK_ER EQU     02H               ;ADDRESS MARK NOT FOUND
  48. NRF_ER     EQU     04H               ;NO RECORD FOUND
  49. RESET_ER EQU     05H               ;RESET ERROR
  50. INIT_ER  EQU     07H               ;DRIVE INITIALIZATION ERROR
  51. DMA_ER     EQU     09H               ;DMA ACCROSS 64K BOUNDRY
  52. BSEC_ER  EQU     0AH               ;BAD SECTOR FLAG DETECTED
  53. BTRK_ER  EQU     0BH               ;BAD TRACK FLAG DETECTED
  54. ECC_ER     EQU     10H               ;BAD ECC ON READ
  55. DATA_ER  EQU     11H               ;CORRECTED ECC ERROR
  56. CTLR_ER  EQU     20H               ;CONTROLLER ERROR
  57. SEEK_ER  EQU     40H               ;SEEK ERROR
  58. TIME_ER  EQU     80H               ;DISK TIME OUT
  59. NRDY_ER  EQU     0AAH               ;DRIVE NOT READY
  60. UNDEF_ER EQU     0BBH               ;UNDEFINED ERROR
  61. WRFLT_ER EQU     0CCH               ;WRITE FAULT
  62. NO_ER     EQU     0E0H               ;ERROR REG = 0
  63. SENSE_ER EQU     0FFH               ;SENSE ERROR
  64. ; **********************************************************************
  65. ; *             STATUS REGISTER EQUATES               *
  66. ; **********************************************************************
  67. S_BUSY     EQU     10000000B           ;CONTROLLER BUSY
  68. S_DRDY     EQU     01000000B           ;DRIVE READY
  69. S_WRFLT  EQU     00100000B           ;WRITE FAULT
  70. S_SEKCMP EQU     00010000B           ;SEEK COMPLETE
  71. S_DRQ     EQU     00001000B           ;DATA REQUEST
  72. S_CORECC EQU     00000100B           ;ECC CORRECTED DATA
  73. S_INDEX  EQU     00000010B           ;INDEX PAULSE
  74. S_ERROR  EQU     00000001B           ;E R R O R
  75. ; **********************************************************************
  76. ; *              ERROR REGISTER EQUATES               *
  77. ; **********************************************************************
  78. ;
  79. ;             AFTER CTLR_DIAG_CMD
  80. ;
  81. E_NOER     EQU     01H               ;NO ERRORS
  82. E_CTLR     EQU     02H               ;CONTROLLER ERROR
  83. E_SBUFF  EQU     03H               ;SECTOR BUFFER ERROR
  84. E_ECCD     EQU     04H               ;ECC DEVIVE ERROR
  85. E_CPROC  EQU     05H               ;CONTROL PROCESSOR ERROR
  86. ;
  87. ;             AFTER EXECUTING COMMANDS
  88. ;
  89. E_ADMARK EQU     00000001B           ;ADDRESS MARK NOT FOUND
  90. E_TRK0     EQU     00000010H           ;NO TRACK ZERO FOUND
  91. E_CMD     EQU     00000100H           ;COMMAND ABORTED
  92. E_SPARE1 EQU     00001000H           ;NOT USED
  93. E_ID     EQU     00010000H           ;ID NOT FOUND
  94. E_SPARE2 EQU     00100000H           ;NOT USED
  95. E_UNCORR EQU     01000000H           ;UNCORRECTABLE DATA ERROR
  96. E_BADSEC EQU     10000000H           ;BAD SECTOR MARK DETECTED
  97. ; **********************************************************************
  98. ; *                 DISK COMMANDS                   *
  99. ; **********************************************************************
  100. RS_CMD     EQU     00H               ;RESET COMMAND
  101. RD_CMD     EQU     02H               ;READ SECTOR
  102. WR_CMD     EQU     03H               ;WRITE SECTOR
  103. VER_CMD  EQU     04H               ;VERIFY SECTOR
  104. FMT_CMD  EQU     05H               ;FORMAT TRACK
  105. FMBT_CMD EQU     06H               ;FORMAT BAD TRACK
  106. FMD_CMD  EQU     07H               ;FORMAT DRIVE
  107. RDP_CMD  EQU     08H               ;FETCH DRIVE PARMS
  108. WRP_CMD  EQU     09H               ;WRITE DRIVE PARMS
  109. RDL_CMD  EQU     0AH               ;READ LONG
  110. WRL_CMD  EQU     0BH               ;WRITE LONG
  111. SEEK_CMD EQU     0CH               ;SEEK
  112. WSEC_CMD EQU     0FH               ;WRITE SECTOR BUFFER
  113. TRDY_CMD EQU     10H               ;TEST DRIVE READY
  114. RCAL_CMD EQU     11H               ;RECALIBRATE
  115. CTLR_CMD EQU     14H               ;CONTROLLER DIAGNOSTICS
  116. ;
  117. F1     EQU     01H               ;FUNCTION KEY 1
  118. F2     EQU     02H               ;FUNCTION KEY 2
  119. F3     EQU     03H               ;FUNCTION KEY 3
  120. F4     EQU     04H               ;FUNCTION KEY 4
  121. F5     EQU     05H               ;FUNCTION KEY 5
  122. F6     EQU     06H               ;FUNCTION KEY 6
  123. F7     EQU     07H               ;FUNCTION KEY 7
  124. F8     EQU     08H               ;FUNCTION KEY 8
  125. F9     EQU     09H               ;FUNCTION KEY 9
  126. F10     EQU     0AH               ;FUNCTION KEY 10
  127. C_F1     EQU     21               ;CTRL-F1
  128. A_F1     EQU     31               ;ALT_F1
  129. A_F2     EQU     32               ;ALT_F2
  130. A_F3     EQU     33               ;ALT_F3
  131. A_F4     EQU     34               ;ALT_F4
  132. A_F5     EQU     35               ;ALT_F5
  133. A_F6     EQU     36               ;ALT_F6
  134. A_F7     EQU     37               ;ALT_F7
  135. A_F8     EQU     38               ;ALT_F8
  136. A_F9     EQU     39               ;ALT_F9
  137. A_F10     EQU     40               ;ALT-F10
  138. ENT_KEY  EQU     00H               ;ENTRY KEY
  139. C_BRK     EQU     0FEH               ;CONTROL BREAK
  140. ESC_KEY  EQU     41               ;ESCAPE KEY
  141. END_KEY  EQU     42               ;END KEY
  142. ; **********************************************************************
  143. ; *                  EQUATES FOR BOX                   *
  144. ; **********************************************************************
  145. ULEFT     EQU     201               ;UPPER LEFT CORNER
  146. URIGHT     EQU     187               ;UPPER RIGHT CORNER
  147. LLEFT     EQU     200               ;LOWER LEFT CORNER
  148. LRIGHT     EQU     188               ;LOWER RIGHT CORNER
  149. HORZ     EQU     205               ;HORTIZONTIAL LINE
  150. VERT     EQU     186               ;VERTICAL LINE
  151. ; **********************************************************************
  152. ; *                FUNCTION CODES                   *
  153. ; **********************************************************************
  154. ECC_F     EQU     1               ;ECC TEST
  155. RW_F     EQU     2               ;READ/WRITE/VERIFY TEST
  156. SEEK_F     EQU     3               ;SEEK TEST
  157. HS_F     EQU     4               ;HEAD SELECT TEST
  158.